package com.atguigu.system.utils;

import com.atguigu.model.dto.SysDeptDTO;

import java.util.ArrayList;
import java.util.List;

/**
 * @author quzengpeng
 * @descpription: 构建树形结构
 * @date 2023/3/26
 */
public class DeptHelper {

    public static List<SysDeptDTO> buildTree(List<SysDeptDTO> dtoList){
        List<SysDeptDTO> treeList = new ArrayList<>();
        for (SysDeptDTO dto : dtoList) {
            if (dto.getParentId().longValue() == 0){
                treeList.add(findChildren(dto,dtoList));
            }
        }
        return treeList;
    }

    public static SysDeptDTO findChildren(SysDeptDTO dto,List<SysDeptDTO> dtoList){
        //数据初始化
        dto.setChildren(new ArrayList<>());
        for (SysDeptDTO item : dtoList) {
            if (Long.parseLong(dto.getId()) == item.getParentId()){
                if (dto.getChildren() == null){
                    dto.setChildren(new ArrayList<>());
                }
                dto.getChildren().add(findChildren(item,dtoList));
            }
        }
        return dto;
    }
}
